MediaGoblinApp
==============

I. General Information
	Project name: MediaGoblin 
	Current devs: Dylan Jeffers, Christopher Webber
	Outline: Android App for MediaGoblin using PyPump  Summer 2015
		- GSOC (Google Summer of Code) project to give MediaGoblin
            users freedom to check their activity feed and upload
            images to their websites on the go
        - Project is written in Python to take advantage of MediaGoblin
            codebase, particularly PyPump
        - Uses 100% free software to ensure users freedom and promote free
            resources
        - Under GPLv3 liscense

II. Getting Started
	Requirements:
		A MediaGoblin or Pump.io account:
            - visit mediagoblin.org or pump.io to create an account or
                your our own instance
        
        A Linux Machine:
            - Currently buildozer, the application we will use to package
              the android apk, works for Linux only.

    Installation:
        The Plan:
            Install a combination of system-wide packages and
            virtualenv packages

        1. Download the following system-wide dependencies:
            sudo apt-get install -y \
            build-essential \
            mercurial \
            git \
            python2.7 \
            python-setuptools \
            python-dev \
            libsdl-image1.2-dev \
            libsdl-mixer1.2-dev \
            libsdl-ttf2.0-dev \
            libsmpeg-dev \
            libsdl1.2-dev \
            libportmidi-dev \
            libswscale-dev \
            libavformat-dev \
            libavcodec-dev \
            zlib1g-dev

          - Bootstrap a current Python environment:
             sudo apt-get remove --purge -y python-virtualenv python-pip
             sudo easy_install-2.7 -U pip
             sudo pip2.7 install -U virtualenv

          - Install Cython 0.21.2:
             sudo apt-get remove --purge -y cython
             sudo pip2.7 install -U cython==0.21.2

          - Install other PyGame dependencies
             sudo apt-get remove --purge -y python-numpy
             sudo pip2.7 install -U numpy

          - Install PyGame
             sudo apt-get remove --purge python-pygame
             hg clone https://bitbucket.org/pygame/pygame
             cd pygame
             python2.7 setup.py build
             sudo python2.7 setup.py install
             cd ..
             sudo rm -rf pygame
        
        2. Clone the repo
          - cd into a dir of your choice and clone the repo:
            git clone https://notabug.org/SapienTech/MediaGoblinApp
            cd MediaGoblinApp

        3. Create a kivy Virtualenv inside repo:
            rm -rf venv
            virtualenv -p python2.7 --system-site-packages venv

          - Install stable version of Kivy into the virtualenv
              venv/bin/pip install kivy

          - Install development version of buildozer into the virtualenv
              venv/bin/pip install git+https://github.com/kivy/buildozer.git@master

          - Install development version of plyer into the virtualenv
              venv/bin/pip install git+https://github.com/kivy/plyer.git@master

          - Install a couple of dependencies for KivyCatalog
             venv/bin/pip install -U pygments docutils

        - Note: to start installing dependencies under virtualenv's pip,
          use the command: 
            
        
        4. Build the project:
          - Enter virtualenv shell:
             source path/to/virtualenv/bin/activate

          - In the project directory:
            python setup.py develop

          - This will allow you to run kivy from the computer, to install an android
            apk, continue to step 5.

        5. Compiling the Android apk:
            cd goblinoid
            buildozer android debug

         - To run on phone after compiling:
            buildozer android deploy run logcat


III. Testing
    - As compiling apks takes time, it is recommended to first test on the computer,
      and then debug with the apk as the final test

    - plese ping SapienTech on irc.freenode.net in #mediagoblin to ask about
      contributing to the project

IV. Licenses
    GPLv3 or later

V. Contact Us
    Dylan Jeffers: sapientechnology@openmailbox.com

Stay tuned: New releases coming every Friday
